package thread;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 刘远望
 * Date: 2025-05-30
 * Time: 20:50
 */
class Point {
   /* public Point(double x, double y) {
        //构造点的坐标
    }

    public Point(double r, double a) {
        //构造点的极坐标
    }*/
    /**
     * 上述两个构造方法是在平面直角坐标系中确定一个点
     * 第一个方法是直角坐标系 第二个方法是极坐标系
     *两个方法构成冲突也不能重载(overload)
     * 解决方法：工厂模式
     */
}

//提供工厂方法的类叫做工厂类
class PointFactory {
    /**
     * 工厂方法的核心，通过静态方法，把构造对象new的过程各种属性初始化的过程给封装起来
     * 提供多组静态方法 实现不同情况的构造
     */
    //工厂方法
    public static Point makePointByXY(double x, double y) {
        Point p = new Point();
        //通过x 和 y给p进行属性设置
        return p;//返回构造好的Point对象
    }

    public static Point makePointByRA(double r, double a) {
        Point p = new Point();
        //通过r 和 a给p进行属性设置
        return p;
    }
}
public class Demo33 {
    public static void main(String[] args) {
        Point p = PointFactory.makePointByXY(10, 20);
    }
}
